home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)tn.d64
/
rats part2.d
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
7KB
|
226 lines
3 :PRINTCHR$(142):GX=49152:GOTO38
4 REM DRAW 3-D VIEW
5 N=2:A=H:B=V:FF=2^(F-1):SYS IN
6 Z=M%(A,B)*FF:IF((Z/16)AND1)=1THENRL=-1:GOSUB25:GOTO8
7 W=M%(A+S,B-R)*FF:IF((W/128)AND1)=1THENRL=-1:GOSUB21
8 IF((Z/64)AND1)=1THENRL=1:GOSUB25:GOTO10
9 W=M%(A-S,B+R)*FF:IF((W/128)AND1)=1THENRL=1:GOSUB21
10 IF((Z/128)AND1)=1THEN14
11 N=N+1:IFN>8THEN15
12 A=A+R:B=B+S:IFB<2 THEN15
13 GOTO6
14 GOSUB17
15 RETURN
16 REM**DRAW CENTER BACK
17 POKEHX,VX+DX(N):POKEHY,YU(N):SYS PL:POKEHY,YD(N):SYS LI
18 POKEHX,VX-DX(N):SYS LI:POKEHY,YU(N):SYS LI:POKEHX,VX+DX(N):SYS LI
19 RETURN
20 REM**DRAW BACK SIDE
21 POKEHX,VX+RL*DX(N-1):POKEHY,YU(N):SYS PL:POKEHX,VX+RL*DX(N):SYS LI
22 POKEHY,YD(N):SYS LI:POKEHX,VX+RL*DX(N-1):SYS LI
23 RETURN
24 REM**DRAW RIGHT OR LEFT SIDE
25 POKEHX,VX+RL*DX(N-1):POKEHY,YU(N-1):SYS PL:POKEHX,VX+RL*DX(N)
26 POKEHY,YU(N):SYS LI:POKEHY,YD(N):SYS LI:POKEHX,VX+RL*DX(N-1)
27 POKEHY,YD(N-1):SYS LI:POKEHY,YU(N-1):IFN>2 THEN SYS LI
28 RETURN
29 REM**GET KEYBOARD CHARACTER
30 GETA$:IFA$=""THEN30
31 RETURN
32 REM*ERROR SOUND
33 POKE59467,16:POKE59466,51:POKE59464,80
34 FORL=1TO50:NEXT
35 POKE59467,0:POKE59466,0:POKE59464,0
36 RETURN
37 REM**INITIALIZE
38 HX=828:HY=829:LINE=12288:PLOT=12665:INIT=12685:SCR=12725
39 FL=12726:FH=12730:TL=12734:TH=12738
40 PRINT"[147]RATS!
41 [153]"SOLVE A MAZE FROM A RAT'S EYE VIEW
42 INPUT"MAZE SIZE (H,V) 3,3[157][157][157][157][157]";H,V
43 IFH<3ORH>15 ORV<3ORV>15THEN40
44 PRINT"[147]PLEASE WAIT...
45 [139][194](LI)[178]32[175][194](LI[170]1)[178]33[175][194](LI[170]2)[178]48[167]48
46 CK[178]0:[129]L[178]12288[164]12761:[135]A:[151]L,A:CK[178]CK[170]A:[130]:[129]K[178]GX[164]GX[170]23:[135]GX
47 [151]K,GX:[130]:[139]CK[179][177]50144[167][153]"ERROR IN DATA STATEMENTS":[144]
48 N[178]H[172]V[171]1:H[178]H[170]1:V[178]V[170]1:D[178]1
49 [134]M%(17,17),WALK(100),CUT(5),DX(8),YU(8),YD(8)
50 [129]J[178]1[164]V[170]1:M%(1,J)[178]4:M%(H[170]1,J)[178]1:[130]
51 MX[178]79:MY[178]49:VX[178]39:VY[178]24:X[178]VX
52 [129]J[178]1[164]8:DX(J)[178]X:YU(J)[178][181](VY[171]X[172]VY[173]VX):YD(J)[178][181](VY[170]X[172](MY[171]VY)[173]VX)
53 X[178][181](X[172]7[173]10):[130]
54 [129]I[178]2[164]H:M%(I,V[170]1)[178]8:M%(I,1)[178]2:[129]J[178]2[164]V:M%(I,J)[178]15:[130]:[130]
55 R[178][181](H[173]2)[170]1:S[178][181](V[173]2)[170]1:M%(R,S)[178]15
56 [153]"LOADGENERATING MAZE...";:[141]2000
57 [143]**GENERATE RANDOM MAZE (ALGOGITHM FROM ROGERS AND STRASSBERGER)
58 [129]IWALK[178]1[164]N
59 I[178]Z
60 [139]M%(R[171]1,S)[177]14[167]I[178]I[170]1:CUT(I)[178]1
61 [139]M%(R,S[171]1)[177]14[167]I[178]I[170]1:CUT(I)[178]2
62 [139]M%(R[170]1,S)[177]14[167]I[178]I[170]1:CUT(I)[178]3
63 [139]M%(R,S[170]1)[177]14[167]I[178]I[170]1:CUT(I)[178]4
64 [139]I[178]0[167]75
65 [139]I[179][177]1[167]I[178][181]([187](I)[172]I)[170]1
66 [145] CUT(I)[137]67,69,71,73
67 M%(R,S)[178]M%(R,S)[171](M%(R,S)[175]1):R[178]R[171]1
68 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]4)[175]1)[172]4:[137]86
69 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]8)[175]1)[172]8:S[178]S[171]1
70 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]2)[175]1)[172]2:[137]86
71 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]4)[175]1)[172]4:R[178]R[170]1
72 M%(R,S)[178]M%(R,S)[171](M%(R,S)[175]1):[137]86
73 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]2)[175]1)[172]2:S[178]S[170]1
74 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]8)[175]1)[172]8:[137]86
75 [139]D[178][171]1[167]79
76 [139]R[179][177]H[167]83
77 [139]S[179][177]V[167]82
78 R[178]2:S[178]2:[137]84
79 [139]R[179][177]2[167]83
80 [139]S[179][177]V[167]82
81 R[178]H:S[178]2:[137]84
82 S[178]S[170]1:D[178][171]D:[137]84
83 R[178]R[170]D
84 [139]M%(R,S)[178]15 [167]75
85 [137]59
86 [130] IWALK
87 MH[178]H:MV[178]V:I[178][181]([187](1)[172](MH[171]1))[170]2
88 M%(I,1)[178]0:M%(I,2)[178]M%(I,2)[171]((M%(I,2)[173]8)[175]1)[172]8
89 H[178][181]([187](1)[172](MH[171]1))[170]2:H1[178]H:V1[178]V
90 [153]"LOADMAZE COMPLETED.":[141]2000:[137]105
91 [143]**DISPLAY TOP VIEW OF MAZE
92 HZ[178][181](79[173]MH):VZ[178][181](49[173]MV)
93 [158] IN:[151]214,24:[153][163]25);" ON ";
94 [151]HX,1[170]HZ:[151]HY,1[170]VZ:[158] PL:[151]HY,MV[172]VZ[170]1:[158] LI
95 [129]J[178]1[164]MV:[129]I[178]2[164]MH:N[178]M%(I,J):X[178]I[172]HZ[170]1:Y[178]J[172]VZ[170]1
96 [139] ((N[173]2)[175]1)[178]1[167][151]HX,X:[151]HY,Y:[158] PL:[151]HX,X[171]HZ:[158] LI
97 [139]((N[173]4)[175]1)[178]1[167][151]HX,X:[151]HY,Y:[158] PL:[151]HY,Y[171]VZ:[158]LI
98 [130]:[130]
99 [142]
100 [143]**MARK PLAYER(S POSITION
101 X[178]H[172]HZ[171]1:Y[178]V[172]VZ[171]1:[151]HX,X[170]1:[151]HY,Y[170]1:[158] PL
102 [151]HX,X[171]HZ[170]2:[151]HY,Y[171]VZ[170]2:[158] LI:[151]HY,Y[170]2:[158] PL
103 [151]HX,X[170]2:[151]HY,Y[171]VZ[170]2:[158] LI
104 [142]
105 [129]X[178]1[164]MH:[129]Y[178]1[164]MV:M%(X,Y)[178]M%(X,Y)[170]M%(X,Y)[172]16:[130]:[130]
106 [143]**PLAY
107 F[178][181]([187](1)[172]4)[170]1:[145]F[137]108,109,110,111
108 R[178]0:S[178][171]1:[137]112
109 R[178][170]1:S[178]0:[137]112
110 R[178]0:S[178][170]1:[137]112
111 R[178][171]1:S[178]0
112 [153]"LOADPRESS JWAIT TO TURN LEFT
113 PRINT"PRESS L[146] TO TURN RIGHT
114 [153]"PRESS SPACEWAIT TO GO FORWARD
115 PRINT"PRESS M[146] TO DISPLAY TOP VIEW OF MAZE
116 [153]" PRESS ANY KEY TO CONTINUE "
117 [141]30:[153]"LOAD";:[158]49152:[141]5
118 [143]**GET KEYSTROKE
119 [141]30
120 [145][171](A$[178]"J")[171]2[172](A$[178]"L")[171]3[172](A$[178]" ")[171]4[172](A$[178]"M")[137]122,124,131,136
121 [141]2000:[137]112
122 F[178]F[171]1:[139]F[179]1[167]F[178]4
123 [137]125
124 F[178]F[170]1:[139]F[177]4[167]F[178]1
125 [145]F[137]126,127,128,129
126 R[178]0:S[178][171]1:[137]130
127 R[178][170]1:S[178]0:[137]130
128 R[178]0:S[178][170]1:[137]130
129 R[178][171]1:S[178]0
130 [137]135
131 Z[178]M%(H,V):T[178]Z[172]2[174](F[171]1):T[178](T[173]128)[175]1:[139]T[178]1[167][141]2000:[137]119
132 NM[178]NM[170]1:[151]214,24:[153][163]25);"ONMOVE";NM;"";
133 [139] NM[179]100 [167]WALK(NM)[178]F
134 H[178]H[170]R:V[178]V[170]S:[139]V[179]2[167]147
135 [141]5:[137]119
136 [139][168]MS[167]138
137 [151]FL,218:[151]FH,49:[151]TL,0:[151]TH,128:[158] SC:[137]139
138 [141]92:[151]FL,0:[151]FH,128:[151]TL,218:[151]TH,49:[158] SC:MS[178][171]1
139 [141]101:[153]"YOU ARE FACING ";:[145]F[137]140,141,142,143
140 [153]"NORTH";:[137]144
141 [153]"EAST";:[137]144
142 [153]"SOUTH";:[137]144
143 [153]"WEST";
144 [153]". PRESS ANY KEY TO":[153]"CONTINUE":[141]30
145 [153]" ":[153]" "
146 [141]5:[137]119
147 [141]2000:V[178]V1:H[178]H1:[139]MS[167][151]FL,218:[151]FH,49:[151]TL,0:[151]TH,128
148 [139]MS[167][158] SC:[137]150
149 [141]92
150 [141]101
151 [153]"CONGRATULATIONS-YOU'RE OUT IN";NM;"STEP!CMDSAVES"
152 [143]*DRAW PATH WALKED
153 [151]HX,H[172]HZ[171]HZ[173]2[170]1:[151]HY,V[172]VZ[171]VZ[173]2[170]1:[158] PL
154 [129]N[178]1[164]NM:[139]N[177]100[167]158
155 F[178]WALK(N):V[178]V[170](F[178]1)[171](F[178]3):H[178]H[170](F[178]4)[171](F[178]2)
156 [151]HX,H[172]HZ[171]HZ[173]2[170]1:[151]HY,V[172]VZ[171]VZ[173]2[170]1:[158]LI
157 [130]
158 [153]:[128]
160 [131] 32, 33, 48, 173, 58, 3, 133, 2
170 [131] 173, 59, 3, 133, 195, 32, 0, 49
180 [131] 173, 62, 3, 205, 63, 3, 16, 8
190 [131] 240, 6, 32, 173, 48, 76, 3, 48
200 [131] 96, 169, 128, 24, 109, 60, 3, 56
210 [131] 237, 58, 3, 141, 63, 3, 169, 128
220 [131] 24, 109, 61, 3, 56, 237, 59, 3
230 [131] 141, 64, 3, 162, 128, 142, 66, 3
240 [131] 142, 69, 3, 232, 142, 67, 3, 142
250 [131] 68, 3, 173, 63, 3, 201, 128, 176
260 [131] 11, 169, 127, 141, 68, 3, 169, 0
270 [131] 56, 237, 63, 3, 41, 127, 141, 63
280 [131] 3, 173, 64, 3, 201, 128, 176, 11
290 [131] 169, 127, 141, 67, 3, 169, 0, 56
300 [131] 237, 64, 3, 41, 127, 141, 64, 3
310 [131] 173, 63, 3, 205, 64, 3, 176, 32
320 [131] 174, 63, 3, 172, 64, 3, 142, 64
330 [131] 3, 140, 63, 3, 173, 68, 3, 141
340 [131] 66, 3, 173, 67, 3, 141, 69, 3
350 [131] 169, 128, 141, 67, 3, 141, 68, 3
360 [131] 173, 63, 3, 74, 141, 65, 3, 169
370 [131] 0, 141, 62, 3, 96, 173, 68, 3
380 [131] 56, 233, 128, 24, 109, 58, 3, 141
390 [131] 58, 3, 173, 69, 3, 56, 233, 128
400 [131] 24, 109, 59, 3, 141, 59, 3, 173
410 [131] 65, 3, 24, 109, 64, 3, 141, 65
420 [131] 3, 238, 62, 3, 173, 65, 3, 205
430 [131] 63, 3, 48, 35, 240, 33, 56, 237
440 [131] 63, 3, 141, 65, 3, 173, 66, 3
450 [131] 56, 233, 128, 24, 109, 58, 3, 141
460 [131] 58, 3, 173, 67, 3, 56, 233, 128
470 [131] 24, 109, 59, 3, 141, 59, 3, 96
480 [131] 169, 0, 133, 168, 169, 32, 133, 196
490 [131] 165, 2, 201, 80, 176, 56, 165, 195
500 [131] 201, 50, 176, 50, 234, 234, 234, 234
510 [131] 70, 2, 38, 168, 106, 38, 168, 133
520 [131] 195, 10, 10, 101, 195, 10, 10, 38
530 [131] 196, 10, 38, 196, 234, 234, 234, 133
540 [131] 195, 166, 168, 189, 99, 49, 133, 168
550 [131] 164, 2, 177, 195, 162, 15, 221, 103
560 [131] 49, 240, 4, 202, 16, 248, 96, 173
570 [131] 98, 49, 240, 6, 138, 5, 168, 170
580 [131] 208, 8, 138, 73, 255, 5, 168, 73
590 [131] 255, 170, 189, 103, 49, 164, 2, 145
600 [131] 195, 96, 1, 1, 2, 4, 8, 32
610 [131] 126, 123, 97, 124, 226, 255, 236, 108
620 [131] 127, 98, 252, 225, 251, 254, 160, 234
630 [131] 0, 173, 60, 3, 141, 58, 3, 133
640 [131] 2, 173, 61, 3, 141, 59, 3, 133
650 [131] 195, 32, 0, 49, 96, 162, 128, 160
660 [131] 0, 134, 254, 132, 253, 177, 253, 41
670 [131] 127, 201, 64, 48, 2, 169, 32, 145
680 [131] 253, 200, 208, 241, 232, 224, 132, 208
690 [131] 232, 169, 0, 170, 157, 58, 3, 232
700 [131] 224, 12, 208, 248, 96, 169, 218, 133
710 [131] 251, 169, 49, 133, 252, 169, 0, 133
720 [131] 253, 169, 128, 133, 254, 162, 4, 160
730 [131] 0, 177, 251, 145, 253, 136, 208, 249
740 [131] 230, 252, 230, 254, 202, 48, 2, 208
750 [131] 240, 96
1000 [131] 162, 0, 169, 1, 157, 0, 216, 157
1010 [131] 0, 217, 157, 0, 218, 157, 0, 219
1020 [131] 232, 208, 241, 96, 234, 234, 234, 0
2000 S0[178]54272:[129]E[178]S0[164]S0[170]28:[151]E,0:[130]
2010 [151]54296,15:[151]54277,51:[151]54278,211
2020 [151]54276,33:[151]54273,63:[151]54272,75
2030 [129]T[178]1[164]200:[130]:[151]54276,32:[129]T[178]1[164]100:[130]
2040 [129]E[178]S0[164]S0[170]28:[151]E,0:[130]
2050 [142]